//
//  GGVideoManager.h
//  录制视频
//
//  Created by 聚点互动iOS on 2020/12/22.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSUInteger, GGVideoManagerCameraType) {
    GGVideoManagerCameraTypeFront = 0,
    GGVideoManagerCameraTypeBack,
};


#pragma mark - 代理方法
@class GGVideoManager;
@protocol GGVideoManagerProtocol <NSObject>


/// 开始录制
/// @param manager manager description
- (void)didStartRecordVideoWithVideoManager:(GGVideoManager *)manager;


/// 结束录制
/// @param manager manager description
/// @param totalTime 时长秒
/// @param filePath 文件路径
- (void)didEndRecordVideoWithVideoManager:(GGVideoManager *)manager time:(CGFloat)totalTime outputFile:(NSString *)filePath;

@end

@interface GGVideoManager : NSObject


#pragma mark - 初始化


/// 单例
+ (instancetype)manager;


#pragma mark - 配置
/** 录制视频最大时长 */
@property (nonatomic,assign) NSTimeInterval maxTime;

/** 录制视频区域 */
@property (nonatomic,assign) CGRect frame;

/** 代理 */
@property (nonatomic,weak) id <GGVideoManagerProtocol> delegate;

#pragma mark - 功能方法


/**
 加载到显示的视图上
 @param frame  父视图中的frame
 @param superView 父视图
 */
-(void)showWithFrame:(CGRect)frame superView:(UIView *)superView;

/**
 开始录制
 */
-(void)startRecording;


/**
 结束录制
 */
-(void)endRecording;


/**
 暂停录制
 */
-(void)pauseRecording;


/**
 继续录制
 */
-(void)resumeRecording;

/**
 切换前后摄像头
 @param type GGVideoManagerCameraTypeFront 为 前置
 */
-(void)changeCameraPosition:(GGVideoManagerCameraType)type;


/**
 打开闪光灯
 
 @param on YES开  NO关
 */
-(void)turnTorchOn:(BOOL)on;



@end

NS_ASSUME_NONNULL_END
